Error code generation is an important aspect of running computer software (hereinafter referred to as "applications"). Even operating systems generate error codes or phrases when an abnormality is detected during operation of the software. Typical error messages in applications may include a message indicating that a particular requested file has not been found. Similarly, in an operating system, error messages are presented to the user, such as in the instance where a command is entered by the user that is not recognized by the operating system.
A primary disadvantage of present error reporting systems, in applications and operating systems, is the lack of fully identifying where in the program (e.g., line of source code) the error was detected. This would enable programmers to review the source code and quickly concentrate on the cause of the error, based on its occurrence at a particular point in the program. Further, the same error code may be returned during various subroutines or functions, during an application, so that no unique correspondence between the error and the function/subroutine exists. This makes it more difficult to troubleshoot problems when running applications.
The problem becomes multiplied when a main program accomplishes its processing by relying upon modules, in the nature of functions and subroutines, that themselves rely upon a library of software services. By way of example, a software function may include an application command to retrieve a file. Services relate to underlying surfaces such as OLE which provides a software transport for importing data from one particular application, such as Excel.TM. into a second application, such as Word.TM.. Since the same service may be employed by various functions and subroutines, the generation of a simple service error message is not terribly useful since it does not uniquely identify which branch of the application was involved.
Accordingly, a need exists to track and report errors with greater detail than that currently available.